package pe.gob.onpe.ejb.id;

import javax.persistence.Column;
import javax.persistence.Embeddable;

/**
 * VotoId entity.
 * 
 * @author MyEclipse Persistence Tools
 */
@Embeddable
public class VotoId implements java.io.Serializable {

	// Fields

	private Long procesoElectoralId;
	private Long listacandidatospostulanteId;
	private Long tipoEleccionId;
	private String votoId;
	
	private static final long serialVersionUID = 4862761368249181224L;
	// Constructors

	/** default constructor */
	public VotoId() {
	}

	/** full constructor */
	public VotoId(Long procesoElectoralId, Long listacandidatospostulanteId,
			Long tipoEleccionId, String votoId) {
		this.procesoElectoralId = procesoElectoralId;
		this.listacandidatospostulanteId = listacandidatospostulanteId;
		this.tipoEleccionId = tipoEleccionId;
		this.votoId = votoId;
	}

	// Property accessors

	@Column(name = "PROCESO_ELECTORAL_ID", unique = false, nullable = false, insertable = true, updatable = true, precision = 10, scale = 0)
	public Long getProcesoElectoralId() {
		return this.procesoElectoralId;
	}

	public void setProcesoElectoralId(Long procesoElectoralId) {
		this.procesoElectoralId = procesoElectoralId;
	}

	@Column(name = "LISTACANDIDATOSPOSTULANTE_ID", unique = false, nullable = false, insertable = true, updatable = true, precision = 10, scale = 0)
	public Long getListacandidatospostulanteId() {
		return this.listacandidatospostulanteId;
	}

	public void setListacandidatospostulanteId(Long listacandidatospostulanteId) {
		this.listacandidatospostulanteId = listacandidatospostulanteId;
	}

	@Column(name = "TIPO_ELECCION_ID", unique = false, nullable = false, insertable = true, updatable = true, precision = 10, scale = 0)
	public Long getTipoEleccionId() {
		return this.tipoEleccionId;
	}

	public void setTipoEleccionId(Long tipoEleccionId) {
		this.tipoEleccionId = tipoEleccionId;
	}

	@Column(name = "VOTO_ID", unique = false, nullable = false, insertable = true, updatable = true)
	public String getVotoId() {
		return this.votoId;
	}

	public void setVotoId(String votoId) {
		this.votoId = votoId;
	}

	public boolean equals(Object other) {
		if ((this == other))
			return true;
		if ((other == null))
			return false;
		if (!(other instanceof VotoId))
			return false;
		VotoId castOther = (VotoId) other;

		return ((this.getProcesoElectoralId() == castOther
				.getProcesoElectoralId()) || (this.getProcesoElectoralId() != null
				&& castOther.getProcesoElectoralId() != null && this
				.getProcesoElectoralId().equals(
						castOther.getProcesoElectoralId())))
				&& ((this.getListacandidatospostulanteId() == castOther
						.getListacandidatospostulanteId()) || (this
						.getListacandidatospostulanteId() != null
						&& castOther.getListacandidatospostulanteId() != null && this
						.getListacandidatospostulanteId().equals(
								castOther.getListacandidatospostulanteId())))
				&& ((this.getTipoEleccionId() == castOther.getTipoEleccionId()) || (this
						.getTipoEleccionId() != null
						&& castOther.getTipoEleccionId() != null && this
						.getTipoEleccionId().equals(
								castOther.getTipoEleccionId())))
				&& ((this.getVotoId() == castOther.getVotoId()) || (this
						.getVotoId() != null
						&& castOther.getVotoId() != null && this.getVotoId()
						.equals(castOther.getVotoId())));
	}

	public int hashCode() {
		int result = 17;

		result = 37
				* result
				+ (getProcesoElectoralId() == null ? 0 : this
						.getProcesoElectoralId().hashCode());
		result = 37
				* result
				+ (getListacandidatospostulanteId() == null ? 0 : this
						.getListacandidatospostulanteId().hashCode());
		result = 37
				* result
				+ (getTipoEleccionId() == null ? 0 : this.getTipoEleccionId()
						.hashCode());
		result = 37 * result
				+ (getVotoId() == null ? 0 : this.getVotoId().hashCode());
		return result;
	}

}